Spring Boot ক্লায়েন্টে (Spring Boot Client) Custom HTTP Headers যোগ করা সাধারণত API-এর নির্দিষ্ট চাহিদা অনুযায়ী করা হয়। Spring Boot-এ এই কাজটি করা যায় RestTemplate, WebClient, বা Feign Client ব্যবহার করে।
নিচে বিভিন্ন পদ্ধতিতে Custom HTTP Headers যোগ করার প্রক্রিয়া দেখানো হলো:
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
@Service
public class ApiService {
private final RestTemplate restTemplate;
public ApiService(RestTemplate restTemplate) {
this.restTemplate = restTemplate;
}
public String getDataWithHeaders() {
String url = "https://jsonplaceholder.typicode.com/posts";
// Custom Headers সেট করা
HttpHeaders headers = new HttpHeaders();
headers.set("Authorization", "Bearer your-token");
headers.set("Custom-Header", "HeaderValue");
// HttpEntity তৈরি করা
HttpEntity<String> entity = new HttpEntity<>(headers);
// API কল করা
ResponseEntity<String> response = restTemplate.getForEntity(url, String.class, entity);
return response.getBody();
}
}
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
@Configuration
public class RestTemplateConfig {
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
import org.springframework.stereotype.Service;
import org.springframework.web.reactive.function.client.WebClient;
@Service
public class ApiService {
private final WebClient webClient;
public ApiService(WebClient.Builder webClientBuilder) {
this.webClient = webClientBuilder.baseUrl("https://jsonplaceholder.typicode.com").build();
}
public String getDataWithHeaders() {
return webClient.get()
.uri("/posts")
.header("Authorization", "Bearer your-token")
.header("Custom-Header", "HeaderValue")
.retrieve()
.bodyToMono(String.class)
.block();
}
}
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.reactive.function.client.WebClient;
@Configuration
public class WebClientConfig {
@Bean
public WebClient.Builder webClientBuilder() {
return WebClient.builder();
}
}
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestHeader;
@FeignClient(name = "apiClient", url = "https://jsonplaceholder.typicode.com")
public interface ApiClient {
@GetMapping("/posts")
String getPostsWithHeaders(
@RequestHeader("Authorization") String token,
@RequestHeader("Custom-Header") String customHeader
);
}
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class ApiService {
@Autowired
private ApiClient apiClient;
public String getDataWithHeaders() {
return apiClient.getPostsWithHeaders("Bearer your-token", "HeaderValue");
}
}
feign.client.config.default.loggerLevel=full
feign.client.config.default.connectTimeout=5000
feign.client.config.default.readTimeout=5000
Authorization: Bearer <token>
বা API-Key: <key>
।Request-ID
, Correlation-ID
হেডার ব্যবহার করা হয়।Accept
, Content-Type
হেডার পরিবর্তন করতে।Spring Boot-এ Custom HTTP Headers যোগ করার উপায় নির্ভর করে আপনি কোন HTTP ক্লায়েন্ট ব্যবহার করছেন। RestTemplate, WebClient, এবং Feign Client—সবগুলোতেই এটি খুব সহজে করা যায়।
যদি আপনার কোনো নির্দিষ্ট প্রয়োজনে সাহায্য দরকার হয়, জানাবেন। 😊
Read more